/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.estacionamiento.vista;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.estacionamiento.bl.EstacionamientoBlLocal;
import mx.itschapala.dsw2.estacionamiento.bl.RegistroBlLocal;
import mx.itschapala.dsw2.estacionamiento.bl.VehiculosBlLocal;
import mx.itschapala.dsw2.estacionamiento.modelo.Estacionamiento;
import mx.itschapala.dsw2.estacionamiento.modelo.Registro;
import mx.itschapala.dsw2.estacionamiento.modelo.Vehiculos;

/**
 *
 * @author Lindemann
 */
@ManagedBean
@SessionScoped
public class RegistroBean implements Serilizable {

    //---------------EJB'S-------------------------
    @EJB
    private RegistroBlLocal registroBl;
    @EJB
    private EstacionamientoBlLocal estacionamientoBl;
    @EJB
    private VehiculosBlLocal vehiculosBl;
    //------------------variables(propiedades)--------------
    private List<Registro> lista;
    private List<Vehiculos> listaCarros;
    private List<Estacionamiento> listaEstacionamiento;
    private Registro register;
    private String accion;
    private int idVehiculo;
    private int idEstacionamiento;
   
//-----------constructor--------------------------------

    public RegistroBean() {
        register = new Registro();
    }
    //-----------metodos GET y SET--------------------------------

    public List<Registro> getLista() {
        lista = registroBl.getAll();
        return lista;
    }

    public Registro getRegister() {
        return register;
    }

    public void setRegister(Registro register) {
        this.register = register;
    }

    public List<Vehiculos> getListaCarros() {
        listaCarros=vehiculosBl.getAll();
        return listaCarros;
    }

    public void setListaCarros(List<Vehiculos> listaCarros) {
        this.listaCarros = listaCarros;
    }

    public List<Estacionamiento> getListaEstacionamiento() {
        listaEstacionamiento=estacionamientoBl.getAll();
        return listaEstacionamiento;
    }

    public void setListaEstacionamiento(List<Estacionamiento> listaEstacionamiento) {
        this.listaEstacionamiento = listaEstacionamiento;
    }

    public int getIdVehiculo() {
        return idVehiculo;
    }

    public void setIdVehiculo(int idVehiculo) {
        this.idVehiculo = idVehiculo;
    }

    public int getIdEstacionamiento() {
        return idEstacionamiento;
    }

    public void setIdEstacionamiento(int idEstacionamiento) {
        this.idEstacionamiento = idEstacionamiento;
    }

    
    //-----------Acciones--------------------------------    
    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            registroBl.createRegister(register.getIdVehiculos(),register,register.getIdEstacionamiento());
            
        } else if (accion.equalsIgnoreCase("Editar")) {
            registroBl.modify(register);
        } else if (accion.equalsIgnoreCase("Eliminar")) {
            registroBl.delete(register);
        }
        accion = "";
        return "RegistroVista";
    }
    //-----------Listeners--------------------------------  

    public void prepararNuevo(ActionEvent evt) {//accionEvent de faces
        register = new Registro();
        accion = "Nuevo";
    }

    public void prepararEditar(ActionEvent evt) {
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[3];
        int index = Integer.parseInt(num);
        register = lista.get(index);
   //     System.out.println("entro al preparar editar del registro y tiene un valor de:_---------------------- "+register);
   //     accion = "Editar";
    }

    public void prepararEliminar(ActionEvent evt) {
        String arr[] = evt.getComponent().getClientId().split(":");
        String num = arr[3];
        int index = Integer.parseInt(num);
        register = lista.get(index);
        accion = "Eliminar";
    }
    
    public String procesarSeleccion(){
        register.setIdVehiculos(vehiculosBl.findById(idVehiculo));
        register.setIdEstacionamiento(estacionamientoBl.findById(idEstacionamiento));
        return  "RegistroConfirmar";
    }
    
}
